"""
@author: wy
@file: smtp-send.py
@time: 2025/1/9 11:51
"""
#smtplib  发邮件
#email   构建邮件内容
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr  # 关键：使用这个标准工具来格式化地址

# ！！！ 所有地址都使用同一个邮箱 ！！！
sender = '2080981057@qq.com'
password = 'bvntpipdhwudbeag'  # 您的16位授权码
receiver = '2080981057@qq.com'  # 收件人也是自己，完全没问题

mail_content = "湖南电信超出阈值！这是一条自我测试的监控告警。"
message = MIMEText(mail_content, 'plain', 'utf-8')

# ！！！ 核心修正：使用 formataddr 函数 ！！！
# 这个函数会自动生成完全符合RFC5322标准的格式
message['From'] = formataddr(("粟本偲", sender))  # 参数为 (显示名, 真实邮箱)
message['To'] = formataddr(("测试收件人", receiver))  # 这里名称可以任意虚构，不影响
message['Subject'] = "【测试】监控告警通知 - 湖南电信"

try:
    smtpObj = smtplib.SMTP_SSL("smtp.qq.com", 465)
    smtpObj.login(sender, password)
    smtpObj.sendmail(sender, [receiver], message.as_string())  # 注意收件人要放在列表里
    smtpObj.quit()
    print("邮件发送成功！请检查您的收件箱和垃圾邮件箱。")
except smtplib.SMTPException as e:
    print("邮件发送失败：", e)